from pydantic import BaseModel, Field
from datetime import datetime
from typing import Optional, List, Union
from .common import MessageBase, FriendBase, GroupBase, APIResponse

# 消息体模型（用于响应中的 message 字段）
class MessageDetail(MessageBase):
    pass

# 好友模型 (用于响应中的 friend 字段)
class FriendInfo(FriendBase):
    pass

# 群组模型 (用于响应中的 group 字段)
class GroupInfo(GroupBase):
    pass

# 消息记录项模型（用于分页获取消息记录列表中的每个消息）
class MessageRecordItem(BaseModel):
    id: int
    roomId: int
    userId: int
    message: MessageDetail
    friend: Optional[FriendInfo] = None # 单聊时此字段有值
    group: Optional[GroupInfo] = None   # 群聊时此字段有值

# 发送新消息的请求体模型 (保持不变)
class MessageCreate(BaseModel):
    roomId: int = Field(..., description="会话房间ID")
    type: int = Field(..., description="消息类型 (0: 文本, 1: 图片, 等)")
    content: str = Field(..., description="消息内容")

